home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / packet / p_tapr / tnchst / dlc.do4 < prev    next >
Text File  |  1992-03-16  |  14KB  |  253 lines

  1. .HE DL├ 1.ß Ma≥ 91  
  2. .FO                            #
  3. .IG 
  4. .IG 
  5. .OJ ON
  6. .PN 1
  7.  
  8. .IG Documen⌠ dedicateΣ t∩ thσ publiπ domaiε b∙ N2WX
  9. .IG 
  10. .IG Retentioε oµ authorshi≡ noticσ woulΣ no⌠ bσ inappropriate
  11. .IG 
  12. .IG 
  13. .IG 
  14. .OJ ON
  15.  
  16. .CW 10
  17.  
  18.  
  19. .RR----L----!-----!-----!-----!-----!-----!-----!-----!-----!-----!-----------R
  20. .PM 1
  21. WARNIN╟ - EXPERIMENTER╙ ONLY!
  22.  
  23.       Hos⌠ áámodσ ááoε ááTNC-2 áanΣ áderivativσ áTNC≤ áa⌠ áthi≤ átimσ áremain≤ ì
  24. áááááááexperimental.  Obviou≤ áfeature≤ áreceiveΣ áß áquicδ á"goinτ áover" anΣ ì
  25. ááááááárathe≥ ácursor∙ ádebug, ábu⌠ ádiscover∙ áoµ áthσ áremaininτ áinevitablσ ì
  26. ááááááábug≤ ááanΣ ácritica∞ áprogramminτ áoversight≤ áawait≤ áthσ áadventurou≤ ì
  27. áááááááreader/developer.  Pleasσ direc⌠ discoverie≤ anΣ criticisms:
  28.  
  29.             viß slo≈ boa⌠ : t∩ HowarΣ Goldstein
  30.                                   5201-23rΣ Ave. N.
  31.                                   St. Petersburg, F╠ 33710 USA
  32.             viß compuser÷ : t∩ 75006,702
  33.             viß haφ packet: t∩ N2W╪ @ W4DPH.FL
  34.  
  35.       Introduction
  36.  
  37.        Thi≤ ádocumen⌠ ádescribe≤ áthσ data-linδ contro∞ protoco∞ (DLC) useΣ b∙ ì
  38. áááááááthσ TNC-2 termina∞ nodσ controlle≥ oε it≤ RS-232 line.  
  39.  
  40.     Wherσ i⌠ fit≤ in
  41.  
  42.        DL├  provide≤ áß ábidirectiona∞ áerror-protecteΣ two-wa∙ queue, fo≥ BL╨ ì
  43. ááááááá(thσ binar∙ interfacσ protocol).  DL├ use≤ thσ underlyinτ QAF╘ physica∞ ì
  44. ááááááálaye≥ drive≥ a≤ it≤ transmissioε medium.  
  45.  
  46.         |                 |
  47.         |  Applicatioε    |
  48.         |(transpor⌠ intfc)|                             ^~~~~<> R╞ t∩ peer
  49.         +++++++++++++++++++                     ________|________
  50.         |                 |                    |                 |      
  51.         |                 |                    |                 |      
  52.         | Compute≥ drive≥ |                    |    TN├ drive≥   |      
  53.         | (networδ intfc) |                    | (networδ intfc) |      
  54.         |                 |                    |                 |      
  55.     ----------------------------           ---------------------------- 
  56.         Binar∙ Linδ Protoco∞     |*******|     Binar∙ Linδ Protoco∞     
  57.        (defineΣ elsewherσ        |       |     (defineΣ elsewhere)
  58.    ┌────────────────────────────┐         ┌────────────────────────────┐
  59.    │                            │         │                            │
  60.    │                            │         │                            │
  61.    │           DL├              │*********│            DL├             │
  62.    │        (defineΣ here)      │         │    (defineΣ here)          │
  63.    ├────────────────────────────┤         ├────────────────────────────┤
  64.    │          QAF╘              │         │          QAF╘              │
  65.    │    (defineΣ elsewhere)     │.........│    (defineΣ elsewhere)     │
  66.    │                            │         │                            │
  67.    └────────────────────────────┘         └────────────────────────────┘
  68.  
  69.                                     Key:
  70.                                           ......  Onσ connection
  71.                                           ******  Onσ o≥ morσ logica∞ connections
  72.  
  73.   DL├ encapsulation
  74.  
  75.        Thσ áDL├ interfacσ communicate≤ witΦ it≤ pee≥ interfacσ b∙ transceivinτ ì
  76. áááááááDL├ packet≤ usinτ QAF╘ service≤ alonτ thσ underlyinτ QAF╘ link.
  77.  
  78. .CP 15
  79.   DL├ packe⌠ structure
  80. ìè
  81. .OJ OFF
  82.      >| DESTINATIONbytσ | SOURCEbytσ | CTRLbytσ | [variablσ pe≥ CTRL▌ |<
  83. .OJ ON
  84.  
  85.        byte::  8 bi⌠ unsigneΣ integer
  86.  
  87. DESTINATION
  88. SOURCE : áPhysica∞ áaddres≤ áoµ thσ sendinτ (SOURCE) anΣ sinkinτ (DESTINATION) ì
  89. áááááááDL├ device≤ fo≥ thi≤ DL├ packet.  <Optiona∞ iε TNC-2>
  90.  
  91. CTRL   :  typσ oµ packe⌠ 
  92.  
  93.        Thσ áhigΦ ánibblσ áoµ áthσ ácontro∞ ábytσ contain≤ thσ DL├ packe⌠ type.  ì
  94. áááááááValue≤ iε thσ lo≈ nibblσ arσ sequencσ numbers.
  95.  
  96. hex
  97. ---
  98. 10     RESET     - Linδ restar⌠                            (request)
  99. 20     RESET_ACK - Linδ restarteΣ                          (response)
  100.  
  101. 4x     DATA      - SequenceΣ datß                          (request)
  102.                        (° := moΣ 16 sequencσ # oµ data)
  103.  
  104. 5x     DACK      - SequenceΣ datß acknowledgement          (response)
  105.                        (° := moΣ 16 acknowledge≤ u≡ througΦ se± # x-1)
  106. .CP 3
  107.  
  108.       Defininτ DLC
  109.  
  110.        DL├ ái≤ ß balanceΣ protocol.  Sincσ therσ arσ n∩ master-slavσ relationì
  111. áááááááships, áan∙ áonσ DL├ devicσ caε communicatσ witΦ an∙ othe≥ electricall∙ ì
  112. áááááááconnecteΣ áDL├ ádevice.  (fo≥ ex., onσ computer-onσ TNC, o≥ tw∩ computì
  113. áááááááer≤ áanΣ án∩ áTNCs, áo≥ átw∩ TNC≤ back-to-back).  Notσ howeve≥ tha⌠ thσ ì
  114. ááááááácurren⌠ ááTNC-2 áimplementatioε ádoe≤ áno⌠ áspecif∙ ásource/destinatioε ì
  115. áááááááaddressing, áthereforσ áonl∙ áonσ áDL├ álinδ áma∙ takσ placσ acros≤ thσ ì
  116. áááááááphysica∞ medium.
  117.  
  118.        DL├ ái≤ ádescribeΣ áanΣ wa≤ implementeΣ a≤ aε event-driveε finite-statσ ì
  119. ááááááámachine.  
  120.  
  121.     DL├ Objects
  122.  
  123.        EacΦ DL├ linδ use≤ thesσ variable≤ anΣ objects:
  124.  
  125. .RR---!-----L-----!-----!-----!-----!-----!-----!-----!-----!-----!-----R
  126. ááááááááááááDLSTATE:    Onσ áoµ án ástates. á(seσ sectioε oε DL├ states, ì
  127. áááááááááááábelow)
  128.  
  129. ááááááááááááDQUEUE:     áFIF╧ áqueuσ oµ packet≤ a≤ ye⌠ unacknowledgeΣ b∙ ì
  130. ááááááááááááthσ pee≥ DL├ device.
  131.  
  132. .RR----L----!-----!-----!-----!-----!-----!-----!-----!-----!-----!-----------R
  133. .PM 1
  134.     
  135.     DL├ States
  136.  
  137.        Fou≥ ástate≤ áanΣ áseveε áevent≤ arσ defined.  Seσ thσ appendi° fo≥ thσ ì
  138. ááááááástatσ tables.
  139.  
  140.   States
  141.  
  142. DLIDLE
  143.  
  144.        Thσ áDL├ álinδ ái≤ no≈ inactivσ anΣ await≤ eithe≥ (1) receip⌠ oµ ß linδ ì
  145. ááááááárese⌠ á(RESET) ápacket; áo≥ á(2) áloca∞ commanΣ t∩ initiatσ aε outgoinτ ìèááááááácal∞ froφ thσ upper-leve∞ BL╨ driver.
  146.  
  147.        Iµ áthσ DL├ machinσ receive≤ RESET, thσ DL├ drive≥ shal∞ responΣ witΦ ß ì
  148. áááááááreset-acknowledgeΣ á(RESET_ACK) packe⌠ anΣ rese⌠ al∞ oµ it≤ uppe≥ leve∞ ì
  149. áááááááBL╨ links.
  150.  
  151. DLRESET
  152.  
  153.        Thσ áDL├ ámachinσ áenter≤ áthi≤ ástatσ áwheε áß loca∞ even⌠ occur≤ (ex: ì
  154. áááááááupper-leve∞ áBL╨ áattempt≤ t∩ placσ ß call, o≥ ß datagraφ i≤ received).  ì
  155. áááááááWheε áthσ áBTIMER-expireΣ even⌠ occurs, thσ machinσ iε thi≤ statσ send≤ ì
  156. áááááááß RESET packe⌠ t∩ thσ peer.
  157.  
  158.        Thσ áDL├ ámachinσ leave≤ thi≤ statσ anΣ i≤ read∙ fo≥ datß transfe≥ wheε ì
  159. áááááááß áreset-acknowledgeΣ á(RESET_ACK) áo≥ áanothe≥ áRESETindicatioε i≤ reì
  160. áááááááceived.
  161.  
  162. DLDATA
  163.  
  164.        Loca∞ áanΣ pee≥ DLC≤ arσ read∙ t∩ transact.  Thσ statσ change≤ t∩ DWAI╘ ì
  165. áááááááwheε áne≈ outgoinτ sequenceΣ datß packet≤ arσ enqueued.  DDAT┴ statσ i≤ ì
  166. áááááááreentereΣ oncσ al∞ outstandinτ packet≤ arσ acknowledged.
  167.  
  168. DLDWAIT
  169.  
  170.        Thσ áDL├ machinσ ha≤ datß outstandinτ fo≥ thσ remotσ DLC, anΣ i≤ awaitì
  171. áááááááinτ áß áresponse.  Iµ ß BTIMER-expireΣ even⌠ occurs, thσ datß packet(s) ì
  172. ááááááái≤ á(are) áretransmitted.  Iµ ß DAC╦ packe⌠ acknowledginτ al∞ outstandì
  173. áááááááinτ packet≤ i≤ received, thσ statσ change≤ t∩ DDATA.
  174.  
  175.  
  176.     DL├ packe⌠ types
  177.  
  178. .CP 15
  179.   RESE╘ - Cal∞ setup
  180.  
  181.        format:
  182.            |DESTINATION|SOURCE|10|
  183.              ^^^^^^^^^^^^^^^
  184.                 (optional)
  185.  
  186.        Iµ áthσ áDL├ linδ i≤ idle, onσ sidσ wil∞ transmi⌠ ß RESE╘ packe⌠ t∩ fi° ì
  187. ááááááábotΦ side≤ oµ thσ linδ t∩ ß knowε (DLDATA) state.
  188.  
  189.        Wheε áß ádevicσ receive≤ ß RESE╘ packe⌠ i⌠ shal∞ repl∙ witΦ ß RESET_AC╦ ì
  190. ááááááápacke⌠ anΣ rese⌠ al∞ oµ thσ BL╨ circuit≤ it≤ associateΣ with.
  191.  
  192.   RESET_AC╦ - DL├ resetted
  193.  
  194.        format:
  195.            |DESTINATION|SOURCE|LCN|20|
  196.              ^^^^^^^^^^^^^^^
  197.                 (optional)
  198.  
  199.  
  200.        Receip⌠ áoµ áthσ áRESET_AC╦ ápacke⌠ indicate≤ tha⌠ thσ DL├ linδ i≤ sucì
  201. ááááááácessfull∙ openeΣ anΣ BL╨ ma∙ begiε usinτ thσ link.
  202.  
  203. .CP 5
  204.   DLDAT┴ - SequenceΣ datß commanΣ packet
  205. ìè
  206.        format:
  207.         |DESTINATION|SOURCE|4x|[data0...datan]|
  208.            ^^^^^^^^^^^^^^^
  209.                 (optional)
  210.  
  211.                  ° ::  sequencσ number, moΣ 16
  212.  
  213. DAC╦  - SequenceΣ datß acknowledgement
  214.  
  215.        format:
  216.         |DESTINATION|SOURCE|5x|
  217.            ^^^^^^^^^^^^^^^
  218.                 (optional)
  219.                  ° ::  sequencσ number, moΣ 16
  220.  
  221.        Acknowledge≤ packet≤ througΦ sequencσ numbe≥ 'x'
  222.  
  223. .PA è.CW 7
  224. .PO 11
  225. .LH 5
  226. .PL 105
  227. .MT 4
  228. .MB 12
  229.  
  230. .RR-------!--------------------!-----------------------!-------------------!--!----!--------!---------!----------------------!-----------------------!----------------------!--R
  231. .OJ OFF
  232.                                                                                 DL├ Statσ table
  233. .OJ ON
  234.                                                                                r° DACK, all
  235.           | r° RESET           |r° RESET_ACK          |r° DATA               |  acknowledged        |  time≥ xpd           |ne≈ datß queued       | Loca∞ start
  236. ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  237.           |Rese⌠ BLP,cl≥ queues|                      |                      |                      |                      |                      | state>DLRESET
  238. DLIDLE    |senΣ RESET_ACK,     |                      |                      |                      |                      |                      |
  239.           |state>DLDATA        |                      |                      |                      |                      |                      |
  240. ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  241.           |     "              |                      |                      |                      |                      |                      |
  242. DLRESET   |                    |state>DLDATA          |                      |                      |senΣ RESE╘ pkt        |                      |
  243.           |                    |                      |                      |                      |                      |                      |
  244. ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  245.           |     "              |                      |                      |                      |                      |                      |                      |
  246. DLDATA    |                    |                      |senΣ DACK             |                      |                      |state>DLDWAIT         |
  247.           |                    |                      |                      |                      |                      |                      |
  248. ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  249.           |     "              |                      |                      |                      |                      |                      |
  250. DLDWAIT   |                    |                      |senΣ DACK             | state>DLDATA         |senΣ al∞ DLDATA       |                      |
  251.           |                    |                      |                      |                      |                      |                      |
  252. ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  253.